package com.example.service;

import java.math.BigDecimal;
import java.util.*;

public class OrderServiceClean {
    
    /**
     * 处理订单的大方法 - 包含明确的逻辑块
     */
    public String processOrder(String userId, String productId, int quantity) {
        System.out.println("开始处理订单");
        
        // 用户验证块
        if (userId == null || userId.trim().isEmpty()) {
            throw new IllegalArgumentException("用户ID不能为空");
        }
        
        if (userId.length() < 3) {
            throw new IllegalArgumentException("用户ID长度不足");
        }
        
        if (!userId.matches("[a-zA-Z0-9]+")) {
            throw new IllegalArgumentException("用户ID格式错误");
        }
        
        // 产品验证块
        if (productId == null || productId.trim().isEmpty()) {
            throw new IllegalArgumentException("产品ID不能为空");
        }
        
        if (quantity <= 0) {
            throw new IllegalArgumentException("数量必须大于0");
        }
        
        if (quantity > 100) {
            throw new IllegalArgumentException("数量不能超过100");
        }
        
        // 价格计算块
        BigDecimal basePrice = new BigDecimal("100.00");
        BigDecimal quantity_decimal = new BigDecimal(quantity);
        BigDecimal subtotal = basePrice.multiply(quantity_decimal);
        
        // 计算折扣
        BigDecimal discount = BigDecimal.ZERO;
        if (quantity >= 10) {
            discount = subtotal.multiply(new BigDecimal("0.1"));
        }
        
        // 计算税费
        BigDecimal tax = subtotal.subtract(discount).multiply(new BigDecimal("0.08"));
        
        // 计算总价
        BigDecimal total = subtotal.subtract(discount).add(tax);
        
        // 日志记录块
        System.out.println("处理订单: " + userId);
        System.out.println("产品: " + productId);
        System.out.println("数量: " + quantity);
        System.out.println("总价: " + total);
        
        return "订单处理完成，总价: " + total;
    }
    
    // 其他方法...
    public void simpleMethod() {
        System.out.println("这是一个简单方法，不需要重构");
    }
}